// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package android.support.v4.media;
import android.app.Activity;
import android.content.Context;
import android.media.AudioManager;
import android.support.v4.view.KeyEventCompat;
import android.view.KeyEvent;
import android.view.View;
import android.view.Window;
import java.util.ArrayList;
// Referenced classes of package android.support.v4.media:
// TransportController, a, b, d,
// TransportStateListener, TransportPerformer, c
public class TransportMediator extends TransportController
{
public static final int FLAG_KEY_MEDIA_FAST_FORWARD = 64;
public static final int FLAG_KEY_MEDIA_NEXT = 128;
public static final int FLAG_KEY_MEDIA_PAUSE = 16;
public static final int FLAG_KEY_MEDIA_PLAY = 4;
public static final int FLAG_KEY_MEDIA_PLAY_PAUSE = 8;
public static final int FLAG_KEY_MEDIA_PREVIOUS = 1;
public static final int FLAG_KEY_MEDIA_REWIND = 2;
public static final int FLAG_KEY_MEDIA_STOP = 32;
public static final int KEYCODE_MEDIA_PAUSE = 127;
public static final int KEYCODE_MEDIA_PLAY = 126;
public static final int KEYCODE_MEDIA_RECORD = 130;
final Context a;
final TransportPerformer b;
final AudioManager c;
final View d;
final Object e;
final d f;
final ArrayList g;
final c h;
final android.view.KeyEvent.Callback i;
public TransportMediator(Activity activity, TransportPerformer transportperformer)
{
this(activity, null, transportperformer);
}
private TransportMediator(Activity activity, View view, TransportPerformer transportperformer)
{
g = new ArrayList();
h = new a(this);
i = new b(this);
Object obj;
if (activity != null)
{
obj = activity;
} else
{
obj = view.getContext();
}
a = ((Context) (obj));
b = transportperformer;
c = (AudioManager)a.getSystemService("audio");
if (activity != null)
{
view = activity.getWindow().getDecorView();
}
d = view;
e = KeyEventCompat.getKeyDispatcherState(d);
if (android.os.Build.VERSION.SDK_INT >= 18)
{
f = new d(a, c, d, h);
return;
} else
{
f = null;
return;
}
}
public TransportMediator(View view, TransportPerformer transportperformer)
{
this(null, view, transportperformer);
}
static boolean a(int j)
{
switch (j)
{
default:
return false;
case 79: // 'O'
case 85: // 'U'
case 86: // 'V'
case 87: // 'W'
case 88: // 'X'
case 89: // 'Y'
case 90: // 'Z'
case 91: // '['
case 126: // '~'
case 127: // '\177'
case 130:
return true;
}
}
private TransportStateListener[] a()
{
if (g.size() <= 0)
{
return null;
} else
{
TransportStateListener atransportstatelistener[] = new TransportStateListener[g.size()];
g.toArray(atransportstatelistener);
return atransportstatelistener;
}
}
private void b()
{
TransportStateListener atransportstatelistener[] = a();
if (atransportstatelistener != null)
{
int j = atransportstatelistener.length;
for (int k = 0; k < j; k++)
{
atransportstatelistener[k].onPlayingChanged(this);
}
}
}
private void c()
{
TransportStateListener atransportstatelistener[] = a();
if (atransportstatelistener != null)
{
int j = atransportstatelistener.length;
for (int k = 0; k < j; k++)
{
atransportstatelistener[k].onTransportControlsChanged(this);
}
}
}
private void d()
{
if (f != null)
{
f.a(b.onIsPlaying(), b.onGetCurrentPosition(), b.onGetTransportControlFlags());
}
}
public void destroy()
{
f.b();
}
public boolean dispatchKeyEvent(KeyEvent keyevent)
{
return KeyEventCompat.dispatch(keyevent, i, e, this);
}
public int getBufferPercentage()
{
return b.onGetBufferPercentage();
}
public long getCurrentPosition()
{
return b.onGetCurrentPosition();
}
public long getDuration()
{
return b.onGetDuration();
}
public Object getRemoteControlClient()
{
if (f != null)
{
return f.a();
} else
{
return null;
}
}
public int getTransportControlFlags()
{
return b.onGetTransportControlFlags();
}
public boolean isPlaying()
{
return b.onIsPlaying();
}
public void pausePlaying()
{
if (f != null)
{
f.g();
}
b.onPause();
d();
b();
}
public void refreshState()
{
d();
b();
c();
}
public void registerStateListener(TransportStateListener transportstatelistener)
{
g.add(transportstatelistener);
}
public void seekTo(long l)
{
b.onSeekTo(l);
}
public void startPlaying()
{
if (f != null)
{
f.f();
}
b.onStart();
d();
b();
}
public void stopPlaying()
{
if (f != null)
{
f.h();
}
b.onStop();
d();
b();
}
public void unregisterStateListener(TransportStateListener transportstatelistener)
{
g.remove(transportstatelistener);
}
}